Developer Toolbox TOP-21 Hot Stuff List
TOP-21 HOT RECOMMENDS
from the janitor's tricorder:
last assessed: September 25, 1996
-
What We Did to Port the Developer Toolbox to IRIX 6.2,
and, What We Learned About In The Process, Chapter 1
This document is a record of everything we did to upgrade and then
re-compile the DT on IRIX 6.2 with the "bare-bones" o32
option. The reason this is "Chapter 1" is because we have not yet
succeeded in cleaning up DT source code so it is n32 capable. By so
doing, one can attain full access to 64-bit wide integer registers and
64-bit instructions in a 32-bit address space. It is the janitor's
understanding that achieving such n32 "code robustness" is the
developer's most basic and significant undertaking in moving to IRIX
6.2 from an IRIX 5 universe. Some of the relevant details about this
are described in section 2, The Challenge of n32. Table of Contents
includes:
- Upgrading the DT machine
- The Challenge of n32
- o32 and n32 Pointers
- What DT Source Code Changed
References
-
OpenGL: FROM THE EXTENSIONS TO THE SOLUTIONS Training Course materials, 2/96
The "OpenGL: from the EXTensions to the SOLutions" WEB Document's
structure follows the path diagram of OpenGL on IMPACT. This diagram
can be first divided into two separate graphic operations:
- Pixel Operations (2D)
- Pixel Transfers
- Imaging Operations (colormatrix, convolution, histogram, ... )
- Texture Transfer
- Primitive Operations (3D) which render 3D geometry
These distinct data-flows then merge into the Rasterization stage,
which generates Fragments data to be transformed into actual pixel
information, which in turn are stored into the Frame Buffer.
Every stage of this data flow, and associated OpenGL state, is
presented with all the relevant OpenGL commands. For the major
industry segments, example code illustrating a given market solution
are also presented, making use of the latest OpenGL EXTensions.
Finally, the OpenGL EXTensions/Specifications/ManPages section wraps
up all of the OpenGL accelerators available on IMPACT.
-
OpenGL on Silicon Graphics Systems 3/96
explains how to use the
OpenGL graphics library on Silicon Graphics Systems. This Manual
expands on the OpenGL Programming Guide, which describes
implemetation-independent aspects of OpenGL. It discusses these
major topics:
- Integrating OpenGL programs with the X Window System
- Using OpenGL extensions
- Debugging OpenGL Programs
- Achieving maximum performance
-
Haeberli Universe Subtree:
including such luminous collections as:
- pstools, A Collection of
PostScript Processing Tools for the IRIS, provides 25 programs (16
new, 3 significantly updated) combining operations with/on PostScript
files with IRIS GL.
- imgscr, 26 new
scripts combining the power of different programs in imgtools & pstools
to perform extended image processing operations.
- imgtools, Image
Processing Tools for the IRIS, now contains 218 programs
(85 new, 27 sig. upd.) including 31 (12 new, 6 sig. upd)
convert from and 26 (9 new, 1 sig. upd) convert
to SGI imagelib image file format programs.
- A toolbox-version of Paul's GRAPHICA Obscura, Collected
Computer Graphics Hacks, includes extending his Image Production for the
Web document with links into the haeberli subtree of all source code the
programs described are generated from.
- fonttools, contains 27
programs (6 new, 4 sig. upd.) combining operations with/on polygonal
outline font format files and IRIS GL, and tons of font files in
fonts/
-
The
Lurker's Guide to Video 7/23/96
a repository for the little-known, undocumented knowledge
that you need in order to write any sort of video app on
SGI machines. Topics explored in great detail include:
Video in General
The VL
SGI Video Devices
-
Optimization for Real-Time Graphics Applications, 2/96,
Real-time entertainment applications are very sensitive to image
quality, performance, and system cost. Graphics workstations provide
full product lines with a full range of price points and performance
options. At the high end, they provide many traditional Image
Generator features such as real-time texture mapping and full scene
antialiasing. They can also support many channels, or players, per
workstation to offset the cost of getting the high-end features. At
the low end, they have entry prices and performance that are often
competitive with PCs. Graphics workstations can provide a very
powerful, flexible solution with a rich development
environment. Additionally, because of binary compatibility across
product lines and standards in graphics APIs, graphics workstations
offer the possibility of portability of both applications and
databases to different and future architectures. However, this power
and flexibility increases the complexity for achieving the full
quoted performance from such a machine. This paper presents a strategy
for performance for developing and tuning real-time graphics
applications on graphics workstations.
The following topics are covered:
- typical application requirements for graphics workstations
- multi-processing issues for graphics subsytems
- graphics workstation pipelines and performance trade-offs
- strategies for diagnosing pipeline bottlenecks
- database structure for traversal
- designing and tuning a real-time application
- run-time diagnostics and load-management strategies
- tools for debugging graphics performance
Developing a designed-for-performance application requires understanding
the potential performance problems, identifying which factors are
limiting performance, and then making the trade-offs to achieve maximum
frame rate with the highest quality scene content.
-
MIPSpro(TM) N32 ABI Handbook with an N32 overview, 3/96
This book describes the N32 High Performance 32-bit
Application Binary Interface (ABI) for the MIPS architecture.
Topics include:
- Chapter 1, "N32 ABI Overview"
- "What is N32?," which describes the n32 ABI and compares it with
the other MIPS ABIs.
- "Why We Need a New ABI," which lists the reasons why we need a new ABI.
- "N32 Migration Requirements," which describes what is required of
both SGI and its customers to use the n32 ABI.
- Chapter 2, "Calling Convention Implementations"
- Chapter 3, "N32 Compatibility, Porting, and Assembly Language
Programming Issues"
- Chapter 4, "N32 Examples and Case Studies"
This document uses the following terminology:
o32 --
The current 32-bit ABI generated by the ucode compiler,
that is, 32-bit compilers prior to IRIX 6.1 operating system.
n32 --
The new 32-bit ABI generated by the MIPSpro 64-bit compiler.
n64 --
The new 64-bit ABI generated by the MIPSpro 64-bit compiler.
-
MIPSpro(TM) Compiling and Performance Tuning Guide, 3/96
This guide discusses a variety of issues and tools
involved in programming under the IRIX operating
system. It describes the components of MIPSpro
compiler system, other programming tools and
interfaces, and dynamic shared objects. It also explains
ways to improve program performance.
The compiler system produces either 64-bit object code,
new 32-bit (n32) object code, or old 32-bit object code.
This guide describes the MIPSpro compilers that
produce n32-bit and 64-bit objects. For additional
information about n32, see the MIPSpro N32 ABI
Handbook. For information about compilers that
produce old 32-bit objects, refer to the MIPS
Compiling and Performance Tuning Guide.
-
The OpenGL Utility Toolkit (GLUT) 3.1 distribution (with API manual), PLUS
GLUT articles from
the OpenGL and X column in The X Journal:
- Column 1: An OpenGL Toolkit, 12/94
- Column 2: Let there be light!, 1/95
- Column 3: Texture Mapping, 3/95
- Column 4: Blending, Antialiasing, And Fog, 5/95
- Column 5: Extensions To OpenGL, 7/95
- Column 6: Hardware
For Accelerating OpenGL, 9/95
- Column 7: Using Open Inventor with GLUT, 11/95
- Column 8: Curves and Surfaces in OpenGL, 1/96
- Column 9: EXIT: A 3D standard for X (finally!), 3/96
-
MIPSpro 64-Bit Porting and Transition Guide, 3/96
This document describes porting and transitioning to the
MIPSpro 32-bit, 64-bit and high performance 32-bit (N32)
compilers, and how to employ them with IRIX 6.2, as well
as providing techniques for tuning the performance of
your R8000 applications.
The chapters break out in the following topic areas:
- System and Compiler Overview
- IRIX 6.2 Overview
- Compiler System Components
- Kuck and Associates Preprocessor (KAP)
- Multiprocessing Support
- Language Implementation Differences
- Native 64-Bit Subprogram Interface for MIPS Architectures
- Fortran Implementation Differences
- C Implementation Differences
- Source Code Porting
- 64-Bit Fortran Porting Guidelines
- 64-Bit C Porting Guideline
- Fundamental Types for C
- Assembly Language Coding Guidelines
- Compilation Issues
- Environment Variables
- Command Line Switches
- Optimization Switches of the 64-Bit Compilers
- Compilation Messages
- Linking Your Application
- Runtime Issues
- Runtime Differences
- Extended MIPS Floating-Point Architecture
- Application Bringup and Debugging
- Performance Tuning for the R8000
- Software Pipelining
- Matrix Multiply - A Tuning Case Study
- The Effect of Bellows Stalls
- Use of the IVDEP Directive
- Vector Intrinsic Functions
- Miscellaneous FAQ
-
Topics in IRIX Programming , 3/96
This manual discusses several topics of interest to programmers
writing applications for the IRIX operating system on Silicon
Graphics computers, including memory management, interprocess
communication, models of parallel computation, file and record
locking, font access, and internationalization.
This manual contains the following chapters:
- Chapter 1, "Process Address Space,"
tells how the virtual address space is created
and how objects are mapped into it.
- Chapter 2, "Interprocess Communication,"
describes System V and IRIX interprocess communication mechanisms.
- Chapter 3, "Models of Parallel Computation,"
gives an overview of the different ways you can
specify parallel execution in Silicon Graphics systems.
- Chapter 4, "File and Record Locking,"
describes how to lock and unlock files and parts
of files from within a program.
- Chapter 5, "Working With Fonts,"
discusses typography and font use on Silicon Graphics
computers, and describes the Font Manager library.
- Chapter 6, "Internationalizing Your Application,"
explains how to create an application that can be
adapted for use in different countries.
- Appendix A, "ISO 3166 Country Names and Abbreviations,"
lists country codes for use with internationalization and localization.
- Appendix B, "Converting PVM Applications to MPI,"
documents the methods of porting a PVM-based application to MPI.
This manual assumes you are writing an application that executes
under IRIX version 6.2 or later, and that you are familiar with the
programming conventions of UNIX in general and IRIX in particular.
-
SGI Freeware versions 1.0 and 2.0:
The list from both these releases -- more than 85 software packages built
on IRIX 5.3 and/or IRIX 6.2 -- is so vast we have elected for the
moment to "cheap out" and simply include the above pointer to the entry point in the
public parent directory to
send those with an interest in these burnin' items
on to that threshold.
--> DON'T FORGET TO INSTALL THE
tardist PROGRAM!!!
-
(Almost) All About SCSI, 3/95
This article covers a number of frequent questions about and problems
with SCSI (Small Computer System Interface) devices on the various
SGI platforms and releases, as well as some background information
about SCSI. It is not intended as a general SCSI tutorial.
Unfortunately, there are very few books available on the market that
discuss SCSI, and the existing documents tend to be more
implementors' notes than tutorials.
The article starts with a general overview of SCSI and defines some
terms that will be used later. The focus will be more on the
electrical and physical aspects than the logical aspects, since that
is where most customers seem to have problems. Although much of the
information presented in this article is specific to the more recent
releases of IRIX (IRIX 5.x and IRIX 6.0.x), in general, the
information is applicable to all IRIX releases
-
efscopy, a powerful tool to VERY
quickly clone an entire disk's contents.
efscopy provides FAST
disk-cloning--faster than partition-to-partition copy of sash cp (see
Advanced Site and Server Guide); restore an efscopy'ed image file
onto multiple target devices simultaneously, e.g. sash cp can't do what
efscopy file target1 target2 ... can do.
-
SGI Education Class Source includes:
- IRIX 5.3-based SGI class source for
-
Open Inventor Course
helps applications programmers master a sophisticated
library of object-oriented 3-D building blocks designed to take
advantage of Silicon Graphics hardware features with minimal programming
effort. Students learn to write graphics applications using a library
of objects that can be reused, customized, and extended to meet new
needs.
- Performer
2.0 class which for at present is a "work in progress".
-
DSOsecurity - DSO
Function Authentication.
An example of how to protect DSO function calls from being intercepted
or replaced. An application or licensing code developer can use
DSOauth in their application such that they can protect their DSO
function calls from being intercepted or replaced (eg. preventing
substitution of the gettimeofday call in a license verification
routine) without giving up any of the features of DSOs.
-
Volume Rendering:
includes the two exceedingly impressive implementations:
- vrp -- the Volume Rendering Primer
Volume Rendering Primer provides an example of hardware accelerated volume
rendering on the Indigo² High Impact, Maximum Impact, Reality Engine,
and Infinite Reality workstations from Silicon Graphics.
VRP was written for the express purpose of providing an easy to understand
example of hardware accelerated volume rendering. It addresses the issues
of lookup tables for volume feature enhancement and using embedded geometry
within a volume using the depth buffer along with the fundamental approach
necessary to visualize volumetric data using the available 3D texturing
extensions of OpenGL.
All code specific to volume rendering is written in OpenGL. All code
specific to embedded geometry is written in OpenInventor. The source to
VRP is well documented.
- volren-6 -- hardware-accelerated volume renderer, version 6
the sixth incarnation of a hardware-accelerated volume
renderer based upon the texture mapping capabilities
available in Silicon Graphics' Onyx Reality Engine
architecture. The renderer provides the ability to
control the mapping from scalar data value to color
and opacity as well as the ability to render voxel and
geometric data together. The renderer loads data as a
collection of 2D image files in one of many formats.
-
Installing and
Running IRIX on a Drive Other Than Drive 1,
describes two
techniques: installing IRIX on a disk drive other than the one
configured as SCSI device 1, and booting from a disk drive other than
the system disk. In addition, this article documents related features
of the PROM monitor, sash, and the miniroot.
-
cineswipe,
allows you to record your GL or OpenGL based application's graphics
into a digital movie file (SGI, QuickTime, JPEG) without touching
the application itself. This functionality is exemplified by a
technique for substituting DSO functions in any DSO-based application.
-
IRIX(TM) Device Driver Programming Guide:
- for IRIX 6.2, 3/96:
This guide describes the ways in which hardware
devices are integrated into and controlled from a
Silicon Graphics computer system running the IRIX
operating system version 6.2 and above.
Three general classes of device-control software exist
in an IRIX system: process-level drivers,
kernel-level drivers, and STREAMS drivers.
- A process-level driver executes as part of a
user-initiated process. Examples include the use
of programmed I/O (PIO) to the VME bus, and
control of external interrupts in a Challenge
system.
- A kernel-level driver is loaded as part of the
IRIX kernel and executes in the kernel address space,
controlling one device in response to calls to its
read, write, and ioctl (control) entry points.
- A STREAMS driver is dynamically loaded into the
kernel address space to monitor or modify a stream of
data passing between a device and a user process.
All three classes are discussed in this guide, although
the greatest amount of attention is given to kernel-level
drivers.
Note: This edition applies only to IRIX 6.2 and
later. If you are working with an earlier release
(4.x, 5.2, 5.3, 6.0.x, or 6.1), you should use the
version of this manual appropriate to that release.
- for IRIX 5.3, 1994:
This manual, provides information and procedures for developing,
installing, and testing UNIX® device drivers
for IRIX(TM)
5.2, 5.3, and 6.0. Based on Writing Device Drivers for Silicon
Graphics Workstations (007-0910-010), first published in 1989,
the current version contains numerous corrections and updates as
well as information for new platforms and operating systems.
This manual is a guide to writing device drivers for Silicon Graphics
workstations and servers. It is intended for experienced C programmers
and C++ programmers who have a good working knowledge of the
architecture of Silicon Graphics computer systems.
-
Hardware Developers Handbook, Version 1.0, 1995
Identifying Silicon Graphics workstations and knowing what kind of
interfaces they contain can be a difficult problem. It's the purpose
of this document to help in that quest.
This document is organized so that information about the broad range
of SGI systems is collected here in one document. Reading through the
information from front to back will progress from general information
about SGI systems to the more specific information about particular
interfaces. Along the way terminology will be defined that will help
in identifying systems, options and interfaces available. These
definitions are also listed in the Lexicon of Terms.
This document covers all the "4D", Mips RISC-based systems from the
original 4D/60 to the Indy. The IRIS systems that contained the
Motorola 680X0 processors with models numbers like 1000, 1400, 2400,
3000 and 3030 are not covered here.
--> Expecations are that Version 1.1 in HTML format
will be available in the fall of 1996.
Copyright © 1995-96,
Silicon Graphics, Inc.